package org.window.leeCode0567;

import org.test.Demo1;

import java.util.Arrays;

public class Solution {

    public static void main(String[] args) {

        String str1="ab";
        String str2="eidobaoo";
        System.out.println(checkInclusion(str1,str2));

    }

    /*
    * 给定两个字符串 s1 和 s2，写一个函数来判断 s2 是否包含 s1 的排列。
    * 换句话说，第一个字符串的排列之一是第二个字符串的 子串 。
    * */
    public static int checkInclusion(String s1, String s2){

        int m=s1.length(),n=s2.length();
        if (m>n){
            return 0;
        }
        int[] count1=new int[26];
        int[] count2=new int[26];
        for (int i=0;i<m;i++){
            count1[s1.charAt(i)-'a']++;
            count2[s2.charAt(i)-'a']++;
        }
        if (Arrays.equals(count1,count2)){
            return 0;
        }
        for (int i=m;i<n;i++){
            count2[s2.charAt(i)-'a']++;
            count2[s2.charAt(i-m)-'a']--;
            if (Arrays.equals(count1,count2)){
                return i-m+1;
            }
        }
        return 0;

    }

}
